import type { RoleCreateDto, RoleUpdateDto, RoleListDto, RoleSingleDto } from "@/dtos/role.dto";
import type { PageRequest } from "@/types";
import http from "@/utils/http";

/**
 * 获取角色列表
 * @param params - 分页参数
 * @returns 包含角色列表、总数和总页数的对象
 */
export function getRoleListApi(params: PageRequest) {
  return http.get<any, { list: RoleListDto[]; total: number; pages: number }>("/roles", { params });
}

/**
 * 获取单个角色
 * @param roleId - 角色ID
 * @returns 角色的详细信息
 */
export function getRoleApi(roleId: string) {
  return http.get<any, RoleSingleDto>(`/roles/${roleId}`);
}

/**
 * 创建角色
 * @param data - 角色创建数据
 * @returns 创建成功的布尔值
 */
export function createRoleApi(data: RoleCreateDto) {
  return http.post<any, boolean>("/roles", data);
}

/**
 * 更新角色
 * @param roleId - 角色ID
 * @param data - 角色更新数据
 * @returns 更新成功的布尔值
 */
export function updateRoleApi(roleId: string, data: RoleUpdateDto) {
  return http.put<any, boolean>(`/roles/${roleId}`, data);
}

/**
 * 删除角色
 * @param roleId - 角色ID
 * @returns 删除成功的布尔值
 */
export function deleteRoleApi(roleId: string) {
  return http.delete<any, boolean>(`/roles/${roleId}`);
}